// 打包UMD模块(用于cdn方式)，所用的vite配置
import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"
import vueJsx from "@vitejs/plugin-vue-jsx"
import { resolve } from "path"

export default defineConfig({
	plugins: [vue(), vueJsx()],
	resolve: {
		alias: {
			"@": resolve(__dirname, "src"),
		},
	},
	publicDir: "empty",
	build: {
		outDir: "dist/umd", // 输出目录
		lib: {
			// 配置ES包
			entry: resolve(__dirname, "src/bundle.ts"), // 打包的配置入口文件，精确定位打包入口文件
			name: "chenUI", // 包名-仅仅名称
			fileName: "chen-ui", // 打包后文件名-小写横杠，用户导入使用
			formats: ["umd"], // 打包的格式
		},
		// rollup相关配置
		rollupOptions: {
			// 和npm-ES区别，UMD除了vue让用户自己引入，其他都打包到CDN一个文件
			external: ["vue"],
			output: {
				exports: "named", // UMD具体名字，类似于CND引入 -> JQuery的$ -> 回头你可以从"chenUI"拿到打包
				globals: {
					// 第三方依赖，就是external排除的
					// 指定通过什么名字
					vue: "Vue",
				},
			},
		},
	},
})
